{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install -U git+https://github.com/qubvel/efficientnet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "__file__ = 'EfficientNet-B5-9.3.12-1'\n",
    "__version__ = 'v8'\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"1\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "from glob import glob\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import keras\n",
    "from keras.applications.inception_v3 import InceptionV3\n",
    "from keras.applications.xception import Xception\n",
    "from keras.applications.resnet50 import ResNet50\n",
    "from keras_applications.resnext import ResNeXt50\n",
    "from keras.applications.nasnet import NASNetLarge\n",
    "from keras.applications.inception_resnet_v2 import InceptionResNetV2\n",
    "from keras.models import *\n",
    "from keras.layers import *\n",
    "from keras.optimizers import *\n",
    "from keras.callbacks import *\n",
    "import PIL\n",
    "import time\n",
    "import efficientnet.keras as efn "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "path_data = '../garbage_classify/train_data'\n",
    "batch_size = 16\n",
    "img_size = 456\n",
    "img_width = img_size\n",
    "img_height = img_size\n",
    "random_seed = 201908\n",
    "path_data_train = f'../tmp/data_train_{__version__}/'\n",
    "path_data_valid = f'../tmp/data_valid_{__version__}/'\n",
    "labels_file = '../tmp/labels_raw.csv'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fd9d8339cc0>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "labels_train = pd.read_csv(f'../tmp/labels_train_{__version__}.csv')\n",
    "labels_valid = pd.read_csv(f'../tmp/labels_valid_{__version__}.csv')\n",
    "n_classess = labels_train.label.unique().shape[0]\n",
    "labels_train.groupby(by='label').count().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels_train.label = labels_train.label.apply(lambda x: f'{x:02d}')\n",
    "labels_valid.label = labels_valid.label.apply(lambda x: f'{x:02d}')\n",
    "# labels_train['label_bin'].values = keras.utils.np_utils.to_categorical(\n",
    "#     labels_train.label, n_classess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "bad_results = [ True, False, False, False, False, False, False, False,  True,\n",
    "                True, False, False, False, False,  True,  True,  True, False,\n",
    "                False, False, False, False,  True,  True, False, False, False,\n",
    "                False, False, False, False,  True,  True,  True, False, False,\n",
    "                True, False, False, False]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "({0: 2.5316062176165803,\n",
       "  1: 0.9986486486486487,\n",
       "  2: 1.325560538116592,\n",
       "  3: 4.347058823529411,\n",
       "  4: 0.9566343042071197,\n",
       "  5: 1.2796536796536797,\n",
       "  6: 0.9354430379746835,\n",
       "  7: 1.0228373702422144,\n",
       "  8: 1.9723684210526315,\n",
       "  9: 1.95048231511254,\n",
       "  10: 0.9566343042071197,\n",
       "  11: 0.5027210884353741,\n",
       "  12: 1.1196969696969696,\n",
       "  13: 0.9039755351681957,\n",
       "  14: 2.0371929824561406,\n",
       "  15: 1.8823880597014926,\n",
       "  16: 2.051957295373666,\n",
       "  17: 1.1967611336032389,\n",
       "  18: 1.0228373702422144,\n",
       "  19: 1.18714859437751,\n",
       "  20: 1.6422222222222222,\n",
       "  21: 0.563047619047619,\n",
       "  22: 1.9853333333333332,\n",
       "  23: 2.196761133603239,\n",
       "  24: 1.1637795275590552,\n",
       "  25: 0.6718181818181819,\n",
       "  26: 1.0557142857142856,\n",
       "  27: 0.6906542056074766,\n",
       "  28: 0.9691803278688524,\n",
       "  29: 0.8903614457831325,\n",
       "  30: 1.1546875,\n",
       "  31: 1.8303370786516853,\n",
       "  32: 2.319642857142857,\n",
       "  33: 2.150194552529183,\n",
       "  34: 0.9354430379746835,\n",
       "  35: 1.0557142857142856,\n",
       "  36: 2.3943396226415095,\n",
       "  37: 1.1501945525291828,\n",
       "  38: 0.9474358974358974,\n",
       "  39: 0.8469914040114613},\n",
       " <matplotlib.axes._subplots.AxesSubplot at 0x7fdad0a15a58>)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.utils.class_weight import compute_class_weight\n",
    "class_weights = compute_class_weight('balanced', np.unique(labels_train.label), labels_train.label)\n",
    "for i in range(40):\n",
    "    if bad_results[i]:\n",
    "        class_weights[i] += 1\n",
    "d_class_weights = dict(enumerate(class_weights))\n",
    "d_class_weights,(labels_train.groupby(by='label').count()['fname'] * class_weights).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 11824 validated image filenames belonging to 40 classes.\n",
      "Found 2976 validated image filenames belonging to 40 classes.\n"
     ]
    }
   ],
   "source": [
    "ig = ImageDataGenerator(preprocessing_function=efn.preprocess_input)\n",
    "\n",
    "params_g = dict(\n",
    "    batch_size=batch_size,\n",
    "    # directory=path_data,\n",
    "    # class_mode='other',\n",
    "    x_col='fname',\n",
    "    y_col='label',\n",
    "    target_size=(img_width, img_height),\n",
    "    interpolation='lanczos',\n",
    "    seed=random_seed)\n",
    "\n",
    "train_g = ig.flow_from_dataframe(labels_train, path_data_train, **params_g)\n",
    "valid_g = ig.flow_from_dataframe(labels_valid[:-(labels_valid.shape[0] % batch_size)], path_data_valid, shuffle=False, **params_g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/function.py:1007: calling Graph.create_op (from tensorflow.python.framework.ops) with compute_shapes is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Shapes are always computed; don't use the compute_shapes as it has no effect.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
     ]
    }
   ],
   "source": [
    "base_model = efn.EfficientNetB5(weights='imagenet', include_top=False, input_shape=(img_width, img_height, 3),pooling='avg')\n",
    "for layer in base_model.layers[:-285]:\n",
    "    layer.trainable=False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (None, 456, 456, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "stem_conv (Conv2D)              (None, 228, 228, 48) 1296        input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "stem_bn (BatchNormalization)    (None, 228, 228, 48) 192         stem_conv[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "stem_activation (Activation)    (None, 228, 228, 48) 0           stem_bn[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "block1a_dwconv (DepthwiseConv2D (None, 228, 228, 48) 432         stem_activation[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "block1a_bn (BatchNormalization) (None, 228, 228, 48) 192         block1a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1a_activation (Activation) (None, 228, 228, 48) 0           block1a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_squeeze (GlobalAvera (None, 48)           0           block1a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reshape (Reshape)    (None, 1, 1, 48)     0           block1a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reduce (Conv2D)      (None, 1, 1, 12)     588         block1a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_expand (Conv2D)      (None, 1, 1, 48)     624         block1a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_excite (Multiply)    (None, 228, 228, 48) 0           block1a_activation[0][0]         \n",
      "                                                                 block1a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_conv (Conv2D)   (None, 228, 228, 24) 1152        block1a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_bn (BatchNormal (None, 228, 228, 24) 96          block1a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_bn (BatchNormalization) (None, 228, 228, 24) 96          block1b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1b_activation (Activation) (None, 228, 228, 24) 0           block1b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_squeeze (GlobalAvera (None, 24)           0           block1b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_excite (Multiply)    (None, 228, 228, 24) 0           block1b_activation[0][0]         \n",
      "                                                                 block1b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_bn (BatchNormal (None, 228, 228, 24) 96          block1b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_drop (FixedDropout)     (None, 228, 228, 24) 0           block1b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_add (Add)               (None, 228, 228, 24) 0           block1b_drop[0][0]               \n",
      "                                                                 block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block1c_bn (BatchNormalization) (None, 228, 228, 24) 96          block1c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1c_activation (Activation) (None, 228, 228, 24) 0           block1c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_squeeze (GlobalAvera (None, 24)           0           block1c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_excite (Multiply)    (None, 228, 228, 24) 0           block1c_activation[0][0]         \n",
      "                                                                 block1c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_bn (BatchNormal (None, 228, 228, 24) 96          block1c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1c_drop (FixedDropout)     (None, 228, 228, 24) 0           block1c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_add (Add)               (None, 228, 228, 24) 0           block1c_drop[0][0]               \n",
      "                                                                 block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_conv (Conv2D)    (None, 228, 228, 144 3456        block1c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_bn (BatchNormali (None, 228, 228, 144 576         block2a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_activation (Acti (None, 228, 228, 144 0           block2a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_dwconv (DepthwiseConv2D (None, 114, 114, 144 1296        block2a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2a_bn (BatchNormalization) (None, 114, 114, 144 576         block2a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2a_activation (Activation) (None, 114, 114, 144 0           block2a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_squeeze (GlobalAvera (None, 144)          0           block2a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reshape (Reshape)    (None, 1, 1, 144)    0           block2a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reduce (Conv2D)      (None, 1, 1, 6)      870         block2a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_expand (Conv2D)      (None, 1, 1, 144)    1008        block2a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_excite (Multiply)    (None, 114, 114, 144 0           block2a_activation[0][0]         \n",
      "                                                                 block2a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_conv (Conv2D)   (None, 114, 114, 40) 5760        block2a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_bn (BatchNormal (None, 114, 114, 40) 160         block2a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_bn (BatchNormali (None, 114, 114, 240 960         block2b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_activation (Acti (None, 114, 114, 240 0           block2b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2b_bn (BatchNormalization) (None, 114, 114, 240 960         block2b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2b_activation (Activation) (None, 114, 114, 240 0           block2b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_squeeze (GlobalAvera (None, 240)          0           block2b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_excite (Multiply)    (None, 114, 114, 240 0           block2b_activation[0][0]         \n",
      "                                                                 block2b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_bn (BatchNormal (None, 114, 114, 40) 160         block2b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_drop (FixedDropout)     (None, 114, 114, 40) 0           block2b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_add (Add)               (None, 114, 114, 40) 0           block2b_drop[0][0]               \n",
      "                                                                 block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_bn (BatchNormali (None, 114, 114, 240 960         block2c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_activation (Acti (None, 114, 114, 240 0           block2c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2c_bn (BatchNormalization) (None, 114, 114, 240 960         block2c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2c_activation (Activation) (None, 114, 114, 240 0           block2c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_squeeze (GlobalAvera (None, 240)          0           block2c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_excite (Multiply)    (None, 114, 114, 240 0           block2c_activation[0][0]         \n",
      "                                                                 block2c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_bn (BatchNormal (None, 114, 114, 40) 160         block2c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2c_drop (FixedDropout)     (None, 114, 114, 40) 0           block2c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_add (Add)               (None, 114, 114, 40) 0           block2c_drop[0][0]               \n",
      "                                                                 block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_bn (BatchNormali (None, 114, 114, 240 960         block2d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_activation (Acti (None, 114, 114, 240 0           block2d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2d_bn (BatchNormalization) (None, 114, 114, 240 960         block2d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2d_activation (Activation) (None, 114, 114, 240 0           block2d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_squeeze (GlobalAvera (None, 240)          0           block2d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_excite (Multiply)    (None, 114, 114, 240 0           block2d_activation[0][0]         \n",
      "                                                                 block2d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_bn (BatchNormal (None, 114, 114, 40) 160         block2d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2d_drop (FixedDropout)     (None, 114, 114, 40) 0           block2d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_add (Add)               (None, 114, 114, 40) 0           block2d_drop[0][0]               \n",
      "                                                                 block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_bn (BatchNormali (None, 114, 114, 240 960         block2e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_activation (Acti (None, 114, 114, 240 0           block2e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2e_bn (BatchNormalization) (None, 114, 114, 240 960         block2e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2e_activation (Activation) (None, 114, 114, 240 0           block2e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_squeeze (GlobalAvera (None, 240)          0           block2e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_excite (Multiply)    (None, 114, 114, 240 0           block2e_activation[0][0]         \n",
      "                                                                 block2e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_bn (BatchNormal (None, 114, 114, 40) 160         block2e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2e_drop (FixedDropout)     (None, 114, 114, 40) 0           block2e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_add (Add)               (None, 114, 114, 40) 0           block2e_drop[0][0]               \n",
      "                                                                 block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_bn (BatchNormali (None, 114, 114, 240 960         block3a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_activation (Acti (None, 114, 114, 240 0           block3a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_dwconv (DepthwiseConv2D (None, 57, 57, 240)  6000        block3a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3a_bn (BatchNormalization) (None, 57, 57, 240)  960         block3a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3a_activation (Activation) (None, 57, 57, 240)  0           block3a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_squeeze (GlobalAvera (None, 240)          0           block3a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reshape (Reshape)    (None, 1, 1, 240)    0           block3a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block3a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block3a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_excite (Multiply)    (None, 57, 57, 240)  0           block3a_activation[0][0]         \n",
      "                                                                 block3a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_conv (Conv2D)   (None, 57, 57, 64)   15360       block3a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_bn (BatchNormal (None, 57, 57, 64)   256         block3a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_activation (Acti (None, 57, 57, 384)  0           block3b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3b_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3b_activation (Activation) (None, 57, 57, 384)  0           block3b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_squeeze (GlobalAvera (None, 384)          0           block3b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_excite (Multiply)    (None, 57, 57, 384)  0           block3b_activation[0][0]         \n",
      "                                                                 block3b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_bn (BatchNormal (None, 57, 57, 64)   256         block3b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_drop (FixedDropout)     (None, 57, 57, 64)   0           block3b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_add (Add)               (None, 57, 57, 64)   0           block3b_drop[0][0]               \n",
      "                                                                 block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_activation (Acti (None, 57, 57, 384)  0           block3c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3c_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3c_activation (Activation) (None, 57, 57, 384)  0           block3c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_squeeze (GlobalAvera (None, 384)          0           block3c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_excite (Multiply)    (None, 57, 57, 384)  0           block3c_activation[0][0]         \n",
      "                                                                 block3c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_bn (BatchNormal (None, 57, 57, 64)   256         block3c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3c_drop (FixedDropout)     (None, 57, 57, 64)   0           block3c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_add (Add)               (None, 57, 57, 64)   0           block3c_drop[0][0]               \n",
      "                                                                 block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_activation (Acti (None, 57, 57, 384)  0           block3d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3d_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3d_activation (Activation) (None, 57, 57, 384)  0           block3d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_squeeze (GlobalAvera (None, 384)          0           block3d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_excite (Multiply)    (None, 57, 57, 384)  0           block3d_activation[0][0]         \n",
      "                                                                 block3d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_bn (BatchNormal (None, 57, 57, 64)   256         block3d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3d_drop (FixedDropout)     (None, 57, 57, 64)   0           block3d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_add (Add)               (None, 57, 57, 64)   0           block3d_drop[0][0]               \n",
      "                                                                 block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_activation (Acti (None, 57, 57, 384)  0           block3e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3e_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3e_activation (Activation) (None, 57, 57, 384)  0           block3e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_squeeze (GlobalAvera (None, 384)          0           block3e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_excite (Multiply)    (None, 57, 57, 384)  0           block3e_activation[0][0]         \n",
      "                                                                 block3e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_bn (BatchNormal (None, 57, 57, 64)   256         block3e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3e_drop (FixedDropout)     (None, 57, 57, 64)   0           block3e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_add (Add)               (None, 57, 57, 64)   0           block3e_drop[0][0]               \n",
      "                                                                 block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block4a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_activation (Acti (None, 57, 57, 384)  0           block4a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_dwconv (DepthwiseConv2D (None, 29, 29, 384)  3456        block4a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4a_bn (BatchNormalization) (None, 29, 29, 384)  1536        block4a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4a_activation (Activation) (None, 29, 29, 384)  0           block4a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_squeeze (GlobalAvera (None, 384)          0           block4a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reshape (Reshape)    (None, 1, 1, 384)    0           block4a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block4a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block4a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_excite (Multiply)    (None, 29, 29, 384)  0           block4a_activation[0][0]         \n",
      "                                                                 block4a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_conv (Conv2D)   (None, 29, 29, 128)  49152       block4a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_bn (BatchNormal (None, 29, 29, 128)  512         block4a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_activation (Acti (None, 29, 29, 768)  0           block4b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4b_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4b_activation (Activation) (None, 29, 29, 768)  0           block4b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_squeeze (GlobalAvera (None, 768)          0           block4b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_excite (Multiply)    (None, 29, 29, 768)  0           block4b_activation[0][0]         \n",
      "                                                                 block4b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_bn (BatchNormal (None, 29, 29, 128)  512         block4b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_drop (FixedDropout)     (None, 29, 29, 128)  0           block4b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_add (Add)               (None, 29, 29, 128)  0           block4b_drop[0][0]               \n",
      "                                                                 block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_activation (Acti (None, 29, 29, 768)  0           block4c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4c_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4c_activation (Activation) (None, 29, 29, 768)  0           block4c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_squeeze (GlobalAvera (None, 768)          0           block4c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_excite (Multiply)    (None, 29, 29, 768)  0           block4c_activation[0][0]         \n",
      "                                                                 block4c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_bn (BatchNormal (None, 29, 29, 128)  512         block4c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4c_drop (FixedDropout)     (None, 29, 29, 128)  0           block4c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_add (Add)               (None, 29, 29, 128)  0           block4c_drop[0][0]               \n",
      "                                                                 block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_activation (Acti (None, 29, 29, 768)  0           block4d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4d_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4d_activation (Activation) (None, 29, 29, 768)  0           block4d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_squeeze (GlobalAvera (None, 768)          0           block4d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_excite (Multiply)    (None, 29, 29, 768)  0           block4d_activation[0][0]         \n",
      "                                                                 block4d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_bn (BatchNormal (None, 29, 29, 128)  512         block4d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4d_drop (FixedDropout)     (None, 29, 29, 128)  0           block4d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_add (Add)               (None, 29, 29, 128)  0           block4d_drop[0][0]               \n",
      "                                                                 block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_activation (Acti (None, 29, 29, 768)  0           block4e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4e_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4e_activation (Activation) (None, 29, 29, 768)  0           block4e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_squeeze (GlobalAvera (None, 768)          0           block4e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_excite (Multiply)    (None, 29, 29, 768)  0           block4e_activation[0][0]         \n",
      "                                                                 block4e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_bn (BatchNormal (None, 29, 29, 128)  512         block4e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4e_drop (FixedDropout)     (None, 29, 29, 128)  0           block4e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_add (Add)               (None, 29, 29, 128)  0           block4e_drop[0][0]               \n",
      "                                                                 block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_activation (Acti (None, 29, 29, 768)  0           block4f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4f_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4f_activation (Activation) (None, 29, 29, 768)  0           block4f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_squeeze (GlobalAvera (None, 768)          0           block4f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_excite (Multiply)    (None, 29, 29, 768)  0           block4f_activation[0][0]         \n",
      "                                                                 block4f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_bn (BatchNormal (None, 29, 29, 128)  512         block4f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4f_drop (FixedDropout)     (None, 29, 29, 128)  0           block4f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_add (Add)               (None, 29, 29, 128)  0           block4f_drop[0][0]               \n",
      "                                                                 block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_activation (Acti (None, 29, 29, 768)  0           block4g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4g_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4g_activation (Activation) (None, 29, 29, 768)  0           block4g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_squeeze (GlobalAvera (None, 768)          0           block4g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_excite (Multiply)    (None, 29, 29, 768)  0           block4g_activation[0][0]         \n",
      "                                                                 block4g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_bn (BatchNormal (None, 29, 29, 128)  512         block4g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4g_drop (FixedDropout)     (None, 29, 29, 128)  0           block4g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_add (Add)               (None, 29, 29, 128)  0           block4g_drop[0][0]               \n",
      "                                                                 block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block5a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_activation (Acti (None, 29, 29, 768)  0           block5a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_dwconv (DepthwiseConv2D (None, 29, 29, 768)  19200       block5a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5a_bn (BatchNormalization) (None, 29, 29, 768)  3072        block5a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5a_activation (Activation) (None, 29, 29, 768)  0           block5a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_squeeze (GlobalAvera (None, 768)          0           block5a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reshape (Reshape)    (None, 1, 1, 768)    0           block5a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block5a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block5a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_excite (Multiply)    (None, 29, 29, 768)  0           block5a_activation[0][0]         \n",
      "                                                                 block5a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_conv (Conv2D)   (None, 29, 29, 176)  135168      block5a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_bn (BatchNormal (None, 29, 29, 176)  704         block5a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_activation (Acti (None, 29, 29, 1056) 0           block5b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5b_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5b_activation (Activation) (None, 29, 29, 1056) 0           block5b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_squeeze (GlobalAvera (None, 1056)         0           block5b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5b_activation[0][0]         \n",
      "                                                                 block5b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_bn (BatchNormal (None, 29, 29, 176)  704         block5b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_drop (FixedDropout)     (None, 29, 29, 176)  0           block5b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_add (Add)               (None, 29, 29, 176)  0           block5b_drop[0][0]               \n",
      "                                                                 block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_activation (Acti (None, 29, 29, 1056) 0           block5c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5c_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5c_activation (Activation) (None, 29, 29, 1056) 0           block5c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_squeeze (GlobalAvera (None, 1056)         0           block5c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5c_activation[0][0]         \n",
      "                                                                 block5c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_bn (BatchNormal (None, 29, 29, 176)  704         block5c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5c_drop (FixedDropout)     (None, 29, 29, 176)  0           block5c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_add (Add)               (None, 29, 29, 176)  0           block5c_drop[0][0]               \n",
      "                                                                 block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_activation (Acti (None, 29, 29, 1056) 0           block5d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5d_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5d_activation (Activation) (None, 29, 29, 1056) 0           block5d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_squeeze (GlobalAvera (None, 1056)         0           block5d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5d_activation[0][0]         \n",
      "                                                                 block5d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_bn (BatchNormal (None, 29, 29, 176)  704         block5d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5d_drop (FixedDropout)     (None, 29, 29, 176)  0           block5d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_add (Add)               (None, 29, 29, 176)  0           block5d_drop[0][0]               \n",
      "                                                                 block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_activation (Acti (None, 29, 29, 1056) 0           block5e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5e_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5e_activation (Activation) (None, 29, 29, 1056) 0           block5e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_squeeze (GlobalAvera (None, 1056)         0           block5e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5e_activation[0][0]         \n",
      "                                                                 block5e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_bn (BatchNormal (None, 29, 29, 176)  704         block5e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5e_drop (FixedDropout)     (None, 29, 29, 176)  0           block5e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_add (Add)               (None, 29, 29, 176)  0           block5e_drop[0][0]               \n",
      "                                                                 block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_activation (Acti (None, 29, 29, 1056) 0           block5f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5f_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5f_activation (Activation) (None, 29, 29, 1056) 0           block5f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_squeeze (GlobalAvera (None, 1056)         0           block5f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5f_activation[0][0]         \n",
      "                                                                 block5f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_bn (BatchNormal (None, 29, 29, 176)  704         block5f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5f_drop (FixedDropout)     (None, 29, 29, 176)  0           block5f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_add (Add)               (None, 29, 29, 176)  0           block5f_drop[0][0]               \n",
      "                                                                 block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_activation (Acti (None, 29, 29, 1056) 0           block5g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5g_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5g_activation (Activation) (None, 29, 29, 1056) 0           block5g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_squeeze (GlobalAvera (None, 1056)         0           block5g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5g_activation[0][0]         \n",
      "                                                                 block5g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_bn (BatchNormal (None, 29, 29, 176)  704         block5g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5g_drop (FixedDropout)     (None, 29, 29, 176)  0           block5g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_add (Add)               (None, 29, 29, 176)  0           block5g_drop[0][0]               \n",
      "                                                                 block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block6a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_activation (Acti (None, 29, 29, 1056) 0           block6a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_dwconv (DepthwiseConv2D (None, 15, 15, 1056) 26400       block6a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6a_bn (BatchNormalization) (None, 15, 15, 1056) 4224        block6a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6a_activation (Activation) (None, 15, 15, 1056) 0           block6a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_squeeze (GlobalAvera (None, 1056)         0           block6a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block6a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block6a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block6a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_excite (Multiply)    (None, 15, 15, 1056) 0           block6a_activation[0][0]         \n",
      "                                                                 block6a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_conv (Conv2D)   (None, 15, 15, 304)  321024      block6a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_activation (Acti (None, 15, 15, 1824) 0           block6b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6b_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6b_activation (Activation) (None, 15, 15, 1824) 0           block6b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_squeeze (GlobalAvera (None, 1824)         0           block6b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6b_activation[0][0]         \n",
      "                                                                 block6b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_drop (FixedDropout)     (None, 15, 15, 304)  0           block6b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_add (Add)               (None, 15, 15, 304)  0           block6b_drop[0][0]               \n",
      "                                                                 block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_activation (Acti (None, 15, 15, 1824) 0           block6c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6c_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6c_activation (Activation) (None, 15, 15, 1824) 0           block6c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_squeeze (GlobalAvera (None, 1824)         0           block6c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6c_activation[0][0]         \n",
      "                                                                 block6c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6c_drop (FixedDropout)     (None, 15, 15, 304)  0           block6c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_add (Add)               (None, 15, 15, 304)  0           block6c_drop[0][0]               \n",
      "                                                                 block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_activation (Acti (None, 15, 15, 1824) 0           block6d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6d_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6d_activation (Activation) (None, 15, 15, 1824) 0           block6d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_squeeze (GlobalAvera (None, 1824)         0           block6d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6d_activation[0][0]         \n",
      "                                                                 block6d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6d_drop (FixedDropout)     (None, 15, 15, 304)  0           block6d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_add (Add)               (None, 15, 15, 304)  0           block6d_drop[0][0]               \n",
      "                                                                 block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_activation (Acti (None, 15, 15, 1824) 0           block6e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6e_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6e_activation (Activation) (None, 15, 15, 1824) 0           block6e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_squeeze (GlobalAvera (None, 1824)         0           block6e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6e_activation[0][0]         \n",
      "                                                                 block6e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6e_drop (FixedDropout)     (None, 15, 15, 304)  0           block6e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_add (Add)               (None, 15, 15, 304)  0           block6e_drop[0][0]               \n",
      "                                                                 block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_activation (Acti (None, 15, 15, 1824) 0           block6f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6f_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6f_activation (Activation) (None, 15, 15, 1824) 0           block6f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_squeeze (GlobalAvera (None, 1824)         0           block6f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6f_activation[0][0]         \n",
      "                                                                 block6f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6f_drop (FixedDropout)     (None, 15, 15, 304)  0           block6f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_add (Add)               (None, 15, 15, 304)  0           block6f_drop[0][0]               \n",
      "                                                                 block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_activation (Acti (None, 15, 15, 1824) 0           block6g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6g_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6g_activation (Activation) (None, 15, 15, 1824) 0           block6g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_squeeze (GlobalAvera (None, 1824)         0           block6g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6g_activation[0][0]         \n",
      "                                                                 block6g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6g_drop (FixedDropout)     (None, 15, 15, 304)  0           block6g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_add (Add)               (None, 15, 15, 304)  0           block6g_drop[0][0]               \n",
      "                                                                 block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6h_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_activation (Acti (None, 15, 15, 1824) 0           block6h_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6h_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6h_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6h_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6h_activation (Activation) (None, 15, 15, 1824) 0           block6h_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_squeeze (GlobalAvera (None, 1824)         0           block6h_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6h_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6h_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6h_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6h_activation[0][0]         \n",
      "                                                                 block6h_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6h_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6h_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6h_drop (FixedDropout)     (None, 15, 15, 304)  0           block6h_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_add (Add)               (None, 15, 15, 304)  0           block6h_drop[0][0]               \n",
      "                                                                 block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6i_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_activation (Acti (None, 15, 15, 1824) 0           block6i_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6i_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6i_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6i_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6i_activation (Activation) (None, 15, 15, 1824) 0           block6i_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_squeeze (GlobalAvera (None, 1824)         0           block6i_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6i_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6i_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6i_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6i_activation[0][0]         \n",
      "                                                                 block6i_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6i_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6i_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6i_drop (FixedDropout)     (None, 15, 15, 304)  0           block6i_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_add (Add)               (None, 15, 15, 304)  0           block6i_drop[0][0]               \n",
      "                                                                 block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6i_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block7a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_activation (Acti (None, 15, 15, 1824) 0           block7a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 16416       block7a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7a_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block7a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7a_activation (Activation) (None, 15, 15, 1824) 0           block7a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_squeeze (GlobalAvera (None, 1824)         0           block7a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block7a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block7a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block7a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_excite (Multiply)    (None, 15, 15, 1824) 0           block7a_activation[0][0]         \n",
      "                                                                 block7a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_conv (Conv2D)   (None, 15, 15, 512)  933888      block7a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_activation (Acti (None, 15, 15, 3072) 0           block7b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7b_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7b_activation (Activation) (None, 15, 15, 3072) 0           block7b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_squeeze (GlobalAvera (None, 3072)         0           block7b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7b_activation[0][0]         \n",
      "                                                                 block7b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_drop (FixedDropout)     (None, 15, 15, 512)  0           block7b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_add (Add)               (None, 15, 15, 512)  0           block7b_drop[0][0]               \n",
      "                                                                 block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_activation (Acti (None, 15, 15, 3072) 0           block7c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7c_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7c_activation (Activation) (None, 15, 15, 3072) 0           block7c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_squeeze (GlobalAvera (None, 3072)         0           block7c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7c_activation[0][0]         \n",
      "                                                                 block7c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7c_drop (FixedDropout)     (None, 15, 15, 512)  0           block7c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_add (Add)               (None, 15, 15, 512)  0           block7c_drop[0][0]               \n",
      "                                                                 block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_conv (Conv2D)               (None, 15, 15, 2048) 1048576     block7c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_bn (BatchNormalization)     (None, 15, 15, 2048) 8192        top_conv[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "top_activation (Activation)     (None, 15, 15, 2048) 0           top_bn[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "avg_pool (GlobalAveragePooling2 (None, 2048)         0           top_activation[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "dense_1 (Dense)                 (None, 128)          262272      avg_pool[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_1 (BatchNor (None, 128)          512         dense_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "dropout_1 (Dropout)             (None, 128)          0           batch_normalization_1[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "dense_2 (Dense)                 (None, 40)           5160        dropout_1[0][0]                  \n",
      "==================================================================================================\n",
      "Total params: 28,781,464\n",
      "Trainable params: 26,516,904\n",
      "Non-trainable params: 2,264,560\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "x = base_model.output\n",
    "\n",
    "x = Dense(128)(x)\n",
    "x = BatchNormalization()(x)\n",
    "x=Dropout(0.5)(x)\n",
    "\n",
    "DENSE_KERNEL_INITIALIZER = {\n",
    "    'class_name': 'VarianceScaling',\n",
    "    'config': {\n",
    "        'scale': 1. / 3.,\n",
    "        'mode': 'fan_out',\n",
    "        'distribution': 'uniform'\n",
    "    }\n",
    "}\n",
    "predictions = Dense(n_classess, activation='softmax',kernel_initializer=DENSE_KERNEL_INITIALIZER)(x)\n",
    "model = Model(inputs=base_model.input, outputs=predictions)\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(f'../tmp/model_{__file__}.json','w') as f:\n",
    "    model_json = model.to_json()\n",
    "    f.write(model_json)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "ckpt = ModelCheckpoint('../tmp/ckpt-'+__file__+'-Epoch_{epoch:03d}-acc_{acc:.5f}-val_acc_{val_acc:.5f}.h5', save_best_only=True, monitor='val_acc',verbose=1)\n",
    "\n",
    "estop = EarlyStopping(monitor='val_acc', min_delta=1e-7,verbose=1, patience=20)\n",
    "\n",
    "reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5,patience=4, min_lr=1e-5,verbose=1)\n",
    "\n",
    "csv_logger = CSVLogger(f'../tmp/training_{__file__}.log',append=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Epoch 1/100\n",
      "739/739 [==============================] - 557s 754ms/step - loss: 2.1067 - acc: 0.5485 - val_loss: 0.5652 - val_acc: 0.8619\n",
      "\n",
      "Epoch 00001: val_acc improved from -inf to 0.86190, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_001-acc_0.54855-val_acc_0.86190.h5\n",
      "Epoch 2/100\n",
      "739/739 [==============================] - 529s 716ms/step - loss: 0.8387 - acc: 0.8205 - val_loss: 0.3765 - val_acc: 0.9046\n",
      "\n",
      "Epoch 00002: val_acc improved from 0.86190 to 0.90457, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_002-acc_0.82053-val_acc_0.90457.h5\n",
      "Epoch 3/100\n",
      "739/739 [==============================] - 527s 713ms/step - loss: 0.5481 - acc: 0.8818 - val_loss: 0.3261 - val_acc: 0.9157\n",
      "\n",
      "Epoch 00003: val_acc improved from 0.90457 to 0.91566, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_003-acc_0.88177-val_acc_0.91566.h5\n",
      "Epoch 4/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.3797 - acc: 0.9141 - val_loss: 0.3113 - val_acc: 0.9180\n",
      "\n",
      "Epoch 00004: val_acc improved from 0.91566 to 0.91801, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_004-acc_0.91407-val_acc_0.91801.h5\n",
      "Epoch 5/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.2752 - acc: 0.9398 - val_loss: 0.2920 - val_acc: 0.9271\n",
      "\n",
      "Epoch 00005: val_acc improved from 0.91801 to 0.92708, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_005-acc_0.93978-val_acc_0.92708.h5\n",
      "Epoch 6/100\n",
      "739/739 [==============================] - 526s 711ms/step - loss: 0.2073 - acc: 0.9551 - val_loss: 0.2898 - val_acc: 0.9274\n",
      "\n",
      "Epoch 00006: val_acc improved from 0.92708 to 0.92742, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_006-acc_0.95509-val_acc_0.92742.h5\n",
      "Epoch 7/100\n",
      "739/739 [==============================] - 528s 714ms/step - loss: 0.1768 - acc: 0.9641 - val_loss: 0.2766 - val_acc: 0.9298\n",
      "\n",
      "Epoch 00007: val_acc improved from 0.92742 to 0.92977, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_007-acc_0.96414-val_acc_0.92977.h5\n",
      "Epoch 8/100\n",
      "739/739 [==============================] - 529s 716ms/step - loss: 0.1477 - acc: 0.9691 - val_loss: 0.3070 - val_acc: 0.9220\n",
      "\n",
      "Epoch 00008: val_acc did not improve from 0.92977\n",
      "Epoch 9/100\n",
      "739/739 [==============================] - 528s 715ms/step - loss: 0.1278 - acc: 0.9748 - val_loss: 0.2876 - val_acc: 0.9261\n",
      "\n",
      "Epoch 00009: val_acc did not improve from 0.92977\n",
      "Epoch 10/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.1310 - acc: 0.9718 - val_loss: 0.3017 - val_acc: 0.9261\n",
      "\n",
      "Epoch 00010: val_acc did not improve from 0.92977\n",
      "Epoch 11/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.1114 - acc: 0.9762 - val_loss: 0.2925 - val_acc: 0.9274\n",
      "\n",
      "Epoch 00011: val_acc did not improve from 0.92977\n",
      "\n",
      "Epoch 00011: ReduceLROnPlateau reducing learning rate to 4.999999873689376e-05.\n",
      "Epoch 12/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.0808 - acc: 0.9851 - val_loss: 0.2707 - val_acc: 0.9341\n",
      "\n",
      "Epoch 00012: val_acc improved from 0.92977 to 0.93414, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_012-acc_0.98512-val_acc_0.93414.h5\n",
      "Epoch 13/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0626 - acc: 0.9856 - val_loss: 0.2664 - val_acc: 0.9368\n",
      "\n",
      "Epoch 00013: val_acc improved from 0.93414 to 0.93683, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_013-acc_0.98562-val_acc_0.93683.h5\n",
      "Epoch 14/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0494 - acc: 0.9910 - val_loss: 0.2688 - val_acc: 0.9382\n",
      "\n",
      "Epoch 00014: val_acc improved from 0.93683 to 0.93817, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_014-acc_0.99104-val_acc_0.93817.h5\n",
      "Epoch 15/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0434 - acc: 0.9913 - val_loss: 0.2758 - val_acc: 0.9372\n",
      "\n",
      "Epoch 00015: val_acc did not improve from 0.93817\n",
      "Epoch 16/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.0408 - acc: 0.9916 - val_loss: 0.2832 - val_acc: 0.9388\n",
      "\n",
      "Epoch 00016: val_acc improved from 0.93817 to 0.93884, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_016-acc_0.99163-val_acc_0.93884.h5\n",
      "Epoch 17/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.0381 - acc: 0.9917 - val_loss: 0.2878 - val_acc: 0.9395\n",
      "\n",
      "Epoch 00017: val_acc improved from 0.93884 to 0.93952, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_017-acc_0.99171-val_acc_0.93952.h5\n",
      "\n",
      "Epoch 00017: ReduceLROnPlateau reducing learning rate to 2.499999936844688e-05.\n",
      "Epoch 18/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0326 - acc: 0.9932 - val_loss: 0.2893 - val_acc: 0.9382\n",
      "\n",
      "Epoch 00018: val_acc did not improve from 0.93952\n",
      "Epoch 19/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0317 - acc: 0.9933 - val_loss: 0.2771 - val_acc: 0.9402\n",
      "\n",
      "Epoch 00019: val_acc improved from 0.93952 to 0.94019, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_019-acc_0.99332-val_acc_0.94019.h5\n",
      "Epoch 20/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0289 - acc: 0.9946 - val_loss: 0.2804 - val_acc: 0.9388\n",
      "\n",
      "Epoch 00020: val_acc did not improve from 0.94019\n",
      "Epoch 21/100\n",
      "739/739 [==============================] - 527s 713ms/step - loss: 0.0258 - acc: 0.9954 - val_loss: 0.2883 - val_acc: 0.9375\n",
      "\n",
      "Epoch 00021: val_acc did not improve from 0.94019\n",
      "\n",
      "Epoch 00021: ReduceLROnPlateau reducing learning rate to 1.249999968422344e-05.\n",
      "Epoch 22/100\n",
      "739/739 [==============================] - 527s 714ms/step - loss: 0.0291 - acc: 0.9947 - val_loss: 0.2798 - val_acc: 0.9405\n",
      "\n",
      "Epoch 00022: val_acc improved from 0.94019 to 0.94052, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_022-acc_0.99467-val_acc_0.94052.h5\n",
      "Epoch 23/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0233 - acc: 0.9961 - val_loss: 0.2826 - val_acc: 0.9385\n",
      "\n",
      "Epoch 00023: val_acc did not improve from 0.94052\n",
      "Epoch 24/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0189 - acc: 0.9971 - val_loss: 0.2821 - val_acc: 0.9392\n",
      "\n",
      "Epoch 00024: val_acc did not improve from 0.94052\n",
      "Epoch 25/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0247 - acc: 0.9952 - val_loss: 0.2785 - val_acc: 0.9378\n",
      "\n",
      "Epoch 00025: val_acc did not improve from 0.94052\n",
      "\n",
      "Epoch 00025: ReduceLROnPlateau reducing learning rate to 1e-05.\n",
      "Epoch 26/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.0193 - acc: 0.9957 - val_loss: 0.2747 - val_acc: 0.9409\n",
      "\n",
      "Epoch 00026: val_acc improved from 0.94052 to 0.94086, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_026-acc_0.99569-val_acc_0.94086.h5\n",
      "Epoch 27/100\n",
      "739/739 [==============================] - 524s 710ms/step - loss: 0.0167 - acc: 0.9971 - val_loss: 0.2766 - val_acc: 0.9415\n",
      "\n",
      "Epoch 00027: val_acc improved from 0.94086 to 0.94153, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_027-acc_0.99712-val_acc_0.94153.h5\n",
      "Epoch 28/100\n",
      "739/739 [==============================] - 526s 711ms/step - loss: 0.0188 - acc: 0.9960 - val_loss: 0.2752 - val_acc: 0.9402\n",
      "\n",
      "Epoch 00028: val_acc did not improve from 0.94153\n",
      "Epoch 29/100\n",
      "739/739 [==============================] - 526s 711ms/step - loss: 0.0182 - acc: 0.9974 - val_loss: 0.2770 - val_acc: 0.9419\n",
      "\n",
      "Epoch 00029: val_acc improved from 0.94153 to 0.94187, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_029-acc_0.99738-val_acc_0.94187.h5\n",
      "Epoch 30/100\n",
      "739/739 [==============================] - 527s 713ms/step - loss: 0.0147 - acc: 0.9973 - val_loss: 0.2746 - val_acc: 0.9425\n",
      "\n",
      "Epoch 00030: val_acc improved from 0.94187 to 0.94254, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_030-acc_0.99729-val_acc_0.94254.h5\n",
      "Epoch 31/100\n",
      "739/739 [==============================] - 526s 711ms/step - loss: 0.0148 - acc: 0.9972 - val_loss: 0.2782 - val_acc: 0.9409\n",
      "\n",
      "Epoch 00031: val_acc did not improve from 0.94254\n",
      "Epoch 32/100\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "739/739 [==============================] - 527s 713ms/step - loss: 0.0147 - acc: 0.9975 - val_loss: 0.2792 - val_acc: 0.9385\n",
      "\n",
      "Epoch 00032: val_acc did not improve from 0.94254\n",
      "Epoch 33/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0152 - acc: 0.9975 - val_loss: 0.2814 - val_acc: 0.9399\n",
      "\n",
      "Epoch 00033: val_acc did not improve from 0.94254\n",
      "Epoch 34/100\n",
      "739/739 [==============================] - 528s 715ms/step - loss: 0.0154 - acc: 0.9970 - val_loss: 0.2827 - val_acc: 0.9395\n",
      "\n",
      "Epoch 00034: val_acc did not improve from 0.94254\n",
      "Epoch 35/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.0160 - acc: 0.9970 - val_loss: 0.2756 - val_acc: 0.9409\n",
      "\n",
      "Epoch 00035: val_acc did not improve from 0.94254\n",
      "Epoch 36/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0156 - acc: 0.9970 - val_loss: 0.2722 - val_acc: 0.9422\n",
      "\n",
      "Epoch 00036: val_acc did not improve from 0.94254\n",
      "Epoch 37/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0135 - acc: 0.9978 - val_loss: 0.2695 - val_acc: 0.9442\n",
      "\n",
      "Epoch 00037: val_acc improved from 0.94254 to 0.94422, saving model to ../tmp/ckpt-EfficientNet-B5-9.3.12-1-Epoch_037-acc_0.99780-val_acc_0.94422.h5\n",
      "Epoch 38/100\n",
      "739/739 [==============================] - 526s 711ms/step - loss: 0.0125 - acc: 0.9980 - val_loss: 0.2710 - val_acc: 0.9429\n",
      "\n",
      "Epoch 00038: val_acc did not improve from 0.94422\n",
      "Epoch 39/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.0118 - acc: 0.9983 - val_loss: 0.2733 - val_acc: 0.9435\n",
      "\n",
      "Epoch 00039: val_acc did not improve from 0.94422\n",
      "Epoch 40/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0109 - acc: 0.9981 - val_loss: 0.2727 - val_acc: 0.9432\n",
      "\n",
      "Epoch 00040: val_acc did not improve from 0.94422\n",
      "Epoch 41/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0105 - acc: 0.9986 - val_loss: 0.2722 - val_acc: 0.9425\n",
      "\n",
      "Epoch 00041: val_acc did not improve from 0.94422\n",
      "Epoch 42/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0118 - acc: 0.9976 - val_loss: 0.2743 - val_acc: 0.9435\n",
      "\n",
      "Epoch 00042: val_acc did not improve from 0.94422\n",
      "Epoch 43/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0112 - acc: 0.9982 - val_loss: 0.2745 - val_acc: 0.9429\n",
      "\n",
      "Epoch 00043: val_acc did not improve from 0.94422\n",
      "Epoch 44/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0120 - acc: 0.9979 - val_loss: 0.2745 - val_acc: 0.9429\n",
      "\n",
      "Epoch 00044: val_acc did not improve from 0.94422\n",
      "Epoch 45/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0126 - acc: 0.9977 - val_loss: 0.2809 - val_acc: 0.9429\n",
      "\n",
      "Epoch 00045: val_acc did not improve from 0.94422\n",
      "Epoch 46/100\n",
      "739/739 [==============================] - 526s 711ms/step - loss: 0.0090 - acc: 0.9987 - val_loss: 0.2768 - val_acc: 0.9415\n",
      "\n",
      "Epoch 00046: val_acc did not improve from 0.94422\n",
      "Epoch 47/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0108 - acc: 0.9980 - val_loss: 0.2775 - val_acc: 0.9422\n",
      "\n",
      "Epoch 00047: val_acc did not improve from 0.94422\n",
      "Epoch 48/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0117 - acc: 0.9982 - val_loss: 0.2802 - val_acc: 0.9429\n",
      "\n",
      "Epoch 00048: val_acc did not improve from 0.94422\n",
      "Epoch 49/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.0105 - acc: 0.9984 - val_loss: 0.2795 - val_acc: 0.9432\n",
      "\n",
      "Epoch 00049: val_acc did not improve from 0.94422\n",
      "Epoch 50/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0106 - acc: 0.9981 - val_loss: 0.2802 - val_acc: 0.9425\n",
      "\n",
      "Epoch 00050: val_acc did not improve from 0.94422\n",
      "Epoch 51/100\n",
      "739/739 [==============================] - 525s 710ms/step - loss: 0.0105 - acc: 0.9985 - val_loss: 0.2805 - val_acc: 0.9419\n",
      "\n",
      "Epoch 00051: val_acc did not improve from 0.94422\n",
      "Epoch 52/100\n",
      "739/739 [==============================] - 525s 711ms/step - loss: 0.0094 - acc: 0.9986 - val_loss: 0.2796 - val_acc: 0.9412\n",
      "\n",
      "Epoch 00052: val_acc did not improve from 0.94422\n",
      "Epoch 53/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0112 - acc: 0.9980 - val_loss: 0.2821 - val_acc: 0.9425\n",
      "\n",
      "Epoch 00053: val_acc did not improve from 0.94422\n",
      "Epoch 54/100\n",
      "739/739 [==============================] - 527s 714ms/step - loss: 0.0094 - acc: 0.9984 - val_loss: 0.2798 - val_acc: 0.9432\n",
      "\n",
      "Epoch 00054: val_acc did not improve from 0.94422\n",
      "Epoch 55/100\n",
      "739/739 [==============================] - 527s 713ms/step - loss: 0.0090 - acc: 0.9981 - val_loss: 0.2823 - val_acc: 0.9432\n",
      "\n",
      "Epoch 00055: val_acc did not improve from 0.94422\n",
      "Epoch 56/100\n",
      "739/739 [==============================] - 526s 712ms/step - loss: 0.0132 - acc: 0.9978 - val_loss: 0.2813 - val_acc: 0.9399\n",
      "\n",
      "Epoch 00056: val_acc did not improve from 0.94422\n",
      "Epoch 57/100\n",
      "739/739 [==============================] - 527s 713ms/step - loss: 0.0091 - acc: 0.9987 - val_loss: 0.2802 - val_acc: 0.9419\n",
      "\n",
      "Epoch 00057: val_acc did not improve from 0.94422\n",
      "Epoch 00057: early stopping\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x7fd9d718e320>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.compile(optimizer=Adam(lr=1e-4), loss='categorical_crossentropy', metrics=['accuracy'])\n",
    "\n",
    "model.fit_generator(\n",
    "    train_g,\n",
    "    # steps_per_epoch=100,\n",
    "    steps_per_epoch=train_g.n // batch_size,\n",
    "    epochs=100,\n",
    "    class_weight=d_class_weights,\n",
    "    callbacks=[ckpt, estop,reduce_lr,csv_logger],\n",
    "    validation_data=valid_g,\n",
    "    # validation_steps=1,\n",
    "    validation_steps=valid_g.n // batch_size\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EfficientNet-B5-8.31.1-1.ipynb\r\n",
      "EfficientNet-B5-8.31.2-23.ipynb\r\n",
      "EfficientNet-B5-9.1.1-2.ipynb\r\n",
      "EfficientNet-B5-9.1.2-3.ipynb\r\n",
      "EfficientNet-B5-9.1.3-1.ipynb\r\n",
      "EfficientNet-B5-9.1.4-0.ipynb\r\n",
      "EfficientNet-B5-9.1.5-3.ipynb\r\n",
      "EfficientNet-B5-9.1.8-3.ipynb\r\n",
      "EfficientNet-B5-9.1.9-1.ipynb\r\n",
      "EfficientNet-B5-9.2.1-0.ipynb\r\n",
      "EfficientNet-B5-9.2.10-2.ipynb\r\n",
      "EfficientNet-B5-9.2.11-3.ipynb\r\n",
      "EfficientNet-B5-9.2.2-2.ipynb\r\n",
      "EfficientNet-B5-9.2.3-3.ipynb\r\n",
      "EfficientNet-B5-9.2.4-1.ipynb\r\n",
      "EfficientNet-B5-9.2.5-0.ipynb\r\n",
      "EfficientNet-B5-9.2.6-1.ipynb\r\n",
      "EfficientNet-B5-9.2.7-2.ipynb\r\n",
      "EfficientNet-B5-9.2.8-3.ipynb\r\n",
      "EfficientNet-B5-9.2.9-1.ipynb\r\n",
      "EfficientNet-B5-9.3.1-0.ipynb\r\n",
      "EfficientNet-B5-9.3.11-0.ipynb\r\n",
      "EfficientNet-B5-9.3.12-1.ipynb\r\n",
      "EfficientNet-B5-9.3.13-2.ipynb\r\n",
      "EfficientNet-B5-9.3.14-3.ipynb\r\n",
      "EfficientNet-B5-9.3.2-2.ipynb\r\n",
      "EfficientNet-B5-9.3.3-1.ipynb\r\n",
      "EfficientNet-B5-9.3.4-3.ipynb\r\n",
      "EfficientNet-B5-9.3.5-0.ipynb\r\n",
      "EfficientNet-B5-9.3.6-2.ipynb\r\n",
      "EfficientNet-B5-9.3.7-1.ipynb\r\n",
      "EfficientNet-B5-9.3.8-3.ipynb\r\n",
      "EfficientNet-B7-9.1.1-2.ipynb\r\n",
      "InceptionResNetV2-8.24.1-3.ipynb\r\n",
      "InceptionResNetV2-8.25.1-0.ipynb\r\n",
      "InceptionResNetV2-8.25.2-1.ipynb\r\n",
      "InceptionResNetV2-8.25.3-2.ipynb\r\n",
      "InceptionResNetV2-8.26.1-0.ipynb\r\n",
      "InceptionResNetV2-8.26.2-1.ipynb\r\n",
      "InceptionResNetV2-8.26.3-2.ipynb\r\n",
      "InceptionResNetV2-8.26.4-3.ipynb\r\n",
      "InceptionResNetV2-8.26.5-3.ipynb\r\n",
      "InceptionResNetV2-8.27.1-0.ipynb\r\n",
      "InceptionResNetV2-8.27.2-1.ipynb\r\n",
      "InceptionResNetV2-8.27.3-2.ipynb\r\n",
      "InceptionResNetV2-8.27.4-1.ipynb\r\n",
      "InceptionResNetV2-8.28.1-1.ipynb\r\n",
      "InceptionResNetV2-8.28.2-2.ipynb\r\n",
      "InceptionResNetV2-8.29.1-0.ipynb\r\n",
      "InceptionResNetV2-8.29.2-1.ipynb\r\n",
      "InceptionResNetV2-8.29.3-2.ipynb\r\n",
      "InceptionResNetV2-8.29.4-3.ipynb\r\n",
      "InceptionResNetV2-8.29.5-3.ipynb\r\n",
      "InceptionResNetV2-LGBM-8.29.1-0.ipynb\r\n",
      "InceptionResNetV2-Xception-8.27.1-1.ipynb\r\n",
      "InceptionResNetV2-Xception-8.27.4-3.ipynb\r\n",
      "InceptionResNetV2-Xception-8.29.1-0.ipynb\r\n",
      "InceptionResNetV2-Xception-8.30.1-2.ipynb\r\n",
      "InceptionResNetV2-Xception-8.30.2-1.ipynb\r\n",
      "InceptionResNetV2-Xception-8.30.3-0.ipynb\r\n",
      "NASNetLarge-8.22.1-0.ipynb\r\n",
      "NASNetLarge-8.22.2-1.ipynb\r\n",
      "NASNetLarge-8.22.3-2.ipynb\r\n",
      "NASNetLarge-8.22.4-3.ipynb\r\n",
      "NASNetLarge-8.22.5-1.ipynb\r\n",
      "Xception-8.29.1-0.ipynb\r\n",
      "Xception-8.29.2-1.ipynb\r\n",
      "Xception-8.29.3-2.ipynb\r\n",
      "__init__.py\r\n",
      "__pycache__\r\n",
      "baseline-BCNN-InceptionResNetV2.ipynb\r\n",
      "baseline-EfficientNet-B4.ipynb\r\n",
      "baseline-EfficientNet-B5.ipynb\r\n",
      "baseline-EfficientNet-B6.ipynb\r\n",
      "baseline-EfficientNet-B7.ipynb\r\n",
      "baseline-InceptionResNetV2-Xception.ipynb\r\n",
      "baseline-InceptionResNetV2.ipynb\r\n",
      "baseline-NASNetLarge.ipynb\r\n",
      "baseline-ResNeXt50.ipynb\r\n",
      "baseline-Xception.ipynb\r\n",
      "config.json\r\n",
      "customize_service.py\r\n",
      "efficientnet-b5.tar.gz\r\n",
      "exp1.8.16.ipynb\r\n",
      "exp1.8.17.1.ipynb\r\n",
      "exp1.8.17.2.ipynb\r\n",
      "exp1.8.17.3.ipynb\r\n",
      "exp1.8.18.1.ipynb\r\n",
      "exp1.8.18.2.ipynb\r\n",
      "exp1.8.19.1.ipynb\r\n",
      "exp1.8.19.2.ipynb\r\n",
      "exp1.ipynb\r\n",
      "exp15-2.ipynb\r\n",
      "exp2.8.16.2.ipynb\r\n",
      "exp2.8.16.ipynb\r\n",
      "exp2.8.17.1.ipynb\r\n",
      "exp2.8.17.2.ipynb\r\n",
      "exp2.8.17.3.ipynb\r\n",
      "exp2.8.17.4.ipynb\r\n",
      "exp2.8.17.5.ipynb\r\n",
      "exp2.8.18.1.ipynb\r\n",
      "exp2.8.18.2.ipynb\r\n",
      "exp2.8.18.3.ipynb\r\n",
      "exp2.8.19.1.ipynb\r\n",
      "exp2.8.19.2.ipynb\r\n",
      "exp2.8.21.1.ipynb\r\n",
      "exp2.ipynb\r\n",
      "exp3.8.16.2.ipynb\r\n",
      "exp3.8.16.ipynb\r\n",
      "exp3.8.17.1.ipynb\r\n",
      "exp3.8.17.2.ipynb\r\n",
      "exp3.8.17.3.ipynb\r\n",
      "exp3.8.18.1.ipynb\r\n",
      "exp3.8.18.2.ipynb\r\n",
      "exp3.8.19.1.ipynb\r\n",
      "exp3.8.19.2.ipynb\r\n",
      "exp3.ipynb\r\n",
      "exp4.8.16.ipynb\r\n",
      "exp4.8.17.1.ipynb\r\n",
      "exp4.8.17.2.ipynb\r\n",
      "exp4.8.18.1.ipynb\r\n",
      "exp4.8.18.2.ipynb\r\n",
      "exp4.8.19.1.ipynb\r\n",
      "exp4.8.19.2.ipynb\r\n",
      "exp4.ipynb\r\n",
      "preprocess.py\r\n",
      "train_0813.py\r\n",
      "试验记录.md\r\n"
     ]
    }
   ],
   "source": [
    "!ls"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
